package code14_exception;

import java.util.Scanner;

public class Test03 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入整数m的值:");
		int m = sc.nextInt();
		System.out.println("请输入整数n的值:");
		int n = sc.nextInt();
		try {
			// 如果 n = 0 则 不调用 divide 方法, 并告诉用户、调用者 出现了什么问题
			int divide = divide(m, n);
//			int divide = divide2(m,n);
			
			System.out.println("结果是:" + divide);
		} catch (DivideZeroException e) {
			e.printStackTrace();
//			System.out.println("计算错误, 原因是" + e.getMessage());
			//System.out.println("计算错误，除数不能为0");
		}
		
	}
	
	public static int divide(int m, int n) throws DivideZeroException {
		try {
			int z = m/n;
			return z;
		} catch (ArithmeticException e) {
			// 把 ArithmeticException 转换成自己的异常
			throw new DivideZeroException("参数 n 不能为 0", e);
		}
	}
	
	// 推荐的使用方式
	public static int divide2(int m, int n) throws DivideZeroException {
		if (0 == n) {
			throw new DivideZeroException("参数 n 不能为 0");
		}
		return m/n;
	}
}
